import axios from './index.js'

//商品相关

//然后通过引入的axios对象发送请求,并暴露api函数, 例如: (示例)
export const findAllProduct = () => {
    return axios.get('/api/product/findAll');
};

//主页 获取推荐商品 可分页
export const findRecommendProductFun = function (pageNum=1, pageSize=5) {
    // pageNum 当前页码
    // pageSize 每页展示的数据量

    // 响应数据:
    // 标准的响应数据结构,
    // 成功时, data 中存储的数据的主要结构如下:
    // data: {
    //     total: 总数据量,
    //     pageNum: 当前页码,
    //     pages: 总页数,
    //     list: [//当前页的商品集合
    //         //标识符,标题,封面图片,单价,规格参数
    //         {id,title,image,price,type:['规格1','规格2']}
    //     ]
    // }
    return axios.request({
        url: '/api/product/recommend',
        method: 'get',
        params: {
            pageNum: pageNum,
            pageSize: pageSize
        }
    });
};

//根据条件搜索商品 可分页
export const searchProductFun = function (pageNum, pageSize, keyWord, sortKey, sort, bigType, secondType) {
    // pageNum 当前页码
    // pageSize 每页展示的数据量
    // keyWord 搜索关键字
    // sortKey 排序依据: all 综合, sell 销量, price 价格, time 上架时间 
    // sort 排序方式: 1 降序, -1 升序
    // bigType 一级类别id(选择时才有)
    // secondType 二级类别id(选择时才有)

    let params = { pageNum, pageSize, keyWord, sortKey, sort, bigType, secondType };

    // 响应数据:
    // 标准的响应数据结构,
    // 成功时, data 中存储的数据的主要结构如下:
    // data: {
    //     total: 总数据量,
    //     pageNum: 当前页码,
    //     pages: 总页数,
    //     list: [//当前页的商品集合
    //         //标识符,标题,封面图片,单价,规格参数
    //         {id,title,image,price,type:['规格1','规格2']}
    //     ]
    // }
    return axios.request({
        url: '/api/product/search',
        method: 'get',
        params: params
    });
};

//根据productId查询商品信息
export const findProductByIdFun = function (productId) {
    // productId 商品id

    // 响应数据:
    // 标准的响应数据结构,
    // 成功时, data 中存储的数据的主要结构如下:
    // data: {//当前商品
    //     //标识符,标题,封面图片,单价,规格参数
    //     id,title,image,price,type:['规格1','规格2'],
    //     //销量,库存,详情图片地址(数组)
    //     sellCount,store,details:['地址']
    // }
    return axios.request({
        url: '/api/product/findOne',
        method: 'get',
        params: {
            productId: productId
        }
    });
};
